![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 Pomógł: 0 Dołączył: 30.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam, szukałem rozwiązania tego problemu w Googlach i w 2 książkach baz MySQL, ale nic nie znalazłem, bardzo proszę o pomoc, jeśli pytanie jest naiwne, bezsensowne, mało mądre to przepraszam.
Są 3 tabele, aby zilustrować powiem, że ma być to prosta baza faktur VAT. W 3 tabeli są artykuły. W 2 Tabeli są połączenia tych artykułów zindeksowana pod jakąś wartość, aby w jednej komórce nie wciskać wszystkiego, wiadomo ze na fakturze może być kilka pozycji. W 3 tabeli są wartości wczytywane z tabeli 2. TABELA 3 [cennik] 1 ABC 100 2 CDE 200 3 EFG 300 TABELA 2 [co] 1 1 2 3 czyli. ABC 100, CDE 200, EFG 300 2 3 3 3 czyli. EFG 300, EFG 300, EFG 300 3 2 2 2 czyli. CDE 200, CDE 200, CDE 200 TABELA 1 [fvat] Liczba wartosc 1 czyli. ABC 100, CDE 200, EFG 300 EFG 300, EFG 300, EFG 300 CDE 200, CDE 200, CDE 200 Liczba wartosc 2CDE 200, CDE 200, CDE 200 CDE 200, CDE 200, CDE 200 CDE 200, CDE 200, CDE 200 Liczba wartosc 3 CDE 200, CDE 200, CDE 200 CDE 200, CDE 200, CDE 200 CDE 200, CDE 200, CDE 200 w sumie to nie wiem jak przypisać pozostałe wartości w wierszu do klucza. |
|
|
![]()
Post
#2
|
|
Newsman Grupa: Moderatorzy Postów: 2 033 Pomógł: 290 Dołączył: 21.12.2007 Skąd: Łódź ![]() |
A nie możesz inaczej ?
W tabeli 1 trzymasz dane na temat samej faktury (id: faktura_id) - data wystawienia, kwoty, numer faktury i inne potrzebne dane. W tabeli 2 trzymasz dane nt. powiązania faktura_id -> towar_id (zakładam, że jest jakaś tabela z towarami) oraz np. z tabelą stawki_vat (po stawka_id) dla każdego towaru W tabeli 3 trzymasz faktura_id oraz dane z tabeli np. klienci po klient_id (taka tabela łącząca wszystkie tabele z danymi wymaganymi na fakturze). Teraz dla przykładowej faktury masz następujące rekordy: Tabela 1 - faktura faktura_id data_wyst nr_fakt kw_net kw_brutto ... itd. 1 01.01.2000 01/2000 1000.00 1220.00 Tabela 2 faktura-towar id faktura_id towar_id 1 1 123 <- to id rekrdów w tabeli towary, gdzie trzymane są szczegółowe dane na ich temat: nazwa, cena, waga itp. 2 1 432 3 1 490 (co przekłada się na to, że na tej fakturze są trzy towary) Tabela 3 faktura-klient id faktura_id klient_id 1 1 234 <- to id rekordu w tabeli klienci (dane np. Firmy Pana Kazia) Teraz tworzymy fakturę (wyciągamy dane): Kod SELECT * FROM faktura F , faktura-towar FT, faktura-klient FK INNER JOIN FK ON FK.faktura_id = F.faktura_id LEFT JOIN FT ON F.faktura_id = FT.faktura_id To zwróci Ci trzy rekordy, w każdym będziesz miał dane nt. faktury, klienta i kolejnego towaru z faktury . PS. Nie testowałem tego, tak z głowy piszę, więc zapytanie można na pewno skonstruować inaczej. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 11:57 |